package cn.tedu.oop3;

/**该类用于测试super的用法2
 * @author ：Dsi
 * @date ：2021/11/8 17:52
 */
public class TestSuper02 {
    public static void main(String[] args) {
        Father2 f2=new Father2();
        Father2 f3=new Father2(88);
        Son2 s2=new Son2();
    }
}
class Father2{
    public Father2(){
        System.out.println("我是无参构造");
    }
    public Father2(int n){
        System.out.println("我是含参构造");
    }
}
class Son2 extends Father2{

    public Son2(){
        /**1.子类在创建对象时，会自动调用父类的构造方法
         * 原因是，第一行默认存在super（）；--表示调用父类的无参构造
         * 2.当父类没有无参构造时，可手动调用含参构造super（参数）；
         * 3.必须调用一个构造函数
         * 4.super必须在第一行
         * 5.构造方法不可以被继承。原因：因为构造函数的要求必须是本类的类名
         * 不能在子类出现一个父类的构造方法
         */
        super();//调用父类的无参构造
        //super(5);调用父类的含参构造
        System.out.println("我是子类的无参构造");
    }

    public Son2(int n){
        System.out.println("我是子类的含参构造");
    }
}